new Promise((resolve, reject) => {
  resolve('Hello world!')
})
  .then(res => {
    console.log(res)
    return new Promise((resolve, reject) => {
      resolve('Hello world! 2')
    })
  })
  .then(res => {
    // 上一个 then 的回调函数返回 Promise 实例，res 是 Promise 实例的执行结果
    console.log(res) // Hello world! 2
    return 'Hello world! 3'
  })
  .then(res => {
    // 上一个 then 的回调函数返回普通数据，res 是该数据
    console.log(res) // Hello world! 3
  })
